package objetos;

import java.awt.Color;
import java.awt.Graphics2D;
import java.awt.image.BufferedImage;
import java.util.ArrayList;

import fisica.SimuladorFisico;




public class GerenciaFases{
		
	
	public GerenciaFases() {
		CanvasGame.instance.tileset = GamePanel.loadImage("./../Bridge2.png");
	}

	
	public void mudaFase(int numeroFase) {


		
		if(numeroFase == 1){
			
			// Carrega mapa fase 1
			SimuladorFisico.getSimulador().limpaObjetos();
			GamePanel.instance.faseAtual2 = 1;
			
			CanvasGame.instance.verificaEvento.listaVerificaEventos.clear();
			
		
			CanvasGame.instance.eventosFase1.listaDeEventos.clear();
			CanvasGame.instance.eventosFase1.listaDeEventos.removeAll(CanvasGame.instance.eventosFase1.listaDeEventos);

			
			CanvasGame.instance.gerenciaInimigo.ListaInimigo.clear();
			CanvasGame.instance.gerenciaPlataformaMovimentoHorizontal.listaPlataformaHorizontal.clear();
			CanvasGame.instance.gerenciaPlataformaMovimentoVertical.listaPlataformaVertical.clear();
			CanvasGame.instance.boxPush.listaBoxPush.clear();
						
			CanvasGame.instance.mapaAtual = new TileMap(CanvasGame.instance.tileset, (GamePanel.PWIDTH >> 4)
					+ (((GamePanel.PWIDTH & 0x000f) > 0) ? 1 : 0),
					(GamePanel.PHEIGHT >> 4)
					+ (((GamePanel.PHEIGHT % 16) > 0) ? 1 : 0));
			
			CanvasGame.instance.mapaAtual.AbreMapa("./../mapaA.map"); 
			
			CanvasGame.instance.MouseX = CanvasGame.instance.MouseY = 0;
			CanvasGame.instance.mapaGenerico = CanvasGame.instance.mapaAtual;
					
			
			
			// / ADD tudo por CSV ...... INIMIGOS, PLATAFORMAS, ARMADILHAS fase 1  >>>>> CADA FASE TERA SEU PROPRIO CSV
			CanvasGame.instance.eventosFase1.carregaEventos(this.getClass().getResourceAsStream("./../fase1.csv"));
			
		

			CanvasGame.instance.eventosFase1.CarregaTodosItensJogo();

			//.............................................
			
		}else{
		
		if(numeroFase == 2){
			
			SimuladorFisico.getSimulador().limpaObjetos();
			GamePanel.instance.faseAtual2 = 2;
			
			CanvasGame.instance.verificaEvento.listaVerificaEventos.clear();
			
			CanvasGame.instance.eventosFase1.listaDeEventos.clear();
			CanvasGame.instance.eventosFase1.listaDeEventos.removeAll(CanvasGame.instance.eventosFase1.listaDeEventos);

			CanvasGame.instance.gerenciaInimigo.ListaInimigo.clear();
			CanvasGame.instance.gerenciaPlataformaMovimentoHorizontal.listaPlataformaHorizontal.clear();
			CanvasGame.instance.gerenciaPlataformaMovimentoVertical.listaPlataformaVertical.clear();
			CanvasGame.instance.boxPush.listaBoxPush.clear();
			
			// Carrega mapa fase 1
			
			CanvasGame.instance.mapaAtual = new TileMap(CanvasGame.instance.tileset, (GamePanel.PWIDTH >> 4)
					+ (((GamePanel.PWIDTH & 0x000f) > 0) ? 1 : 0),
					(GamePanel.PHEIGHT >> 4)
					+ (((GamePanel.PHEIGHT % 16) > 0) ? 1 : 0));
			
			CanvasGame.instance.mapaAtual.AbreMapa("./../MapaB.map"); 
			
			CanvasGame.instance.MouseX = CanvasGame.instance.MouseY = 0;
			CanvasGame.instance.mapaGenerico = CanvasGame.instance.mapaAtual;
			
			
			
			// / ADD tudo por CSV ...... INIMIGOS, PLATAFORMAS, ARMADILHAS fase 2  >>>>> CADA FASE TERA SEU PROPRIO CSV
			CanvasGame.instance.eventosFase1.carregaEventos(this.getClass().getResourceAsStream("./../fase2.csv"));

			
			CanvasGame.instance.eventosFase1.CarregaTodosItensJogo();

			//.............................................
			
		}else{
			
			if(numeroFase == 3){
				
				SimuladorFisico.getSimulador().limpaObjetos();
				GamePanel.instance.faseAtual2 = 3;
				
				CanvasGame.instance.verificaEvento.listaVerificaEventos.clear();				
				
				CanvasGame.instance.eventosFase1.listaDeEventos.clear();
				CanvasGame.instance.eventosFase1.listaDeEventos.removeAll(CanvasGame.instance.eventosFase1.listaDeEventos);

				
				CanvasGame.instance.gerenciaInimigo.ListaInimigo.clear();
				CanvasGame.instance.gerenciaPlataformaMovimentoHorizontal.listaPlataformaHorizontal.clear();
				CanvasGame.instance.gerenciaPlataformaMovimentoVertical.listaPlataformaVertical.clear();
				CanvasGame.instance.boxPush.listaBoxPush.clear();
				
				// Carrega mapa fase 1
				
				CanvasGame.instance.mapaAtual = new TileMap(CanvasGame.instance.tileset, (GamePanel.PWIDTH >> 4)
						+ (((GamePanel.PWIDTH & 0x000f) > 0) ? 1 : 0),
						(GamePanel.PHEIGHT >> 4)
						+ (((GamePanel.PHEIGHT % 16) > 0) ? 1 : 0));
				
				CanvasGame.instance.mapaAtual.AbreMapa("./../MapaC.map"); 
				
				CanvasGame.instance.MouseX = CanvasGame.instance.MouseY = 0;
				CanvasGame.instance.mapaGenerico = CanvasGame.instance.mapaAtual;
				
				// / ADD tudo por CSV ...... INIMIGOS, PLATAFORMAS, ARMADILHAS fase 2  >>>>> CADA FASE TERA SEU PROPRIO CSV
				CanvasGame.instance.eventosFase1.carregaEventos(this.getClass().getResourceAsStream("./../fase3.csv"));

				
				CanvasGame.instance.eventosFase1.CarregaTodosItensJogo();

				//.............................................
				
			
			
		}else{
			
			if(numeroFase == 4){
				
				SimuladorFisico.getSimulador().limpaObjetos();
				GamePanel.instance.faseAtual2 = 4;
				
				CanvasGame.instance.verificaEvento.listaVerificaEventos.clear();
				
				
				CanvasGame.instance.eventosFase1.listaDeEventos.clear();
				CanvasGame.instance.eventosFase1.listaDeEventos.removeAll(CanvasGame.instance.eventosFase1.listaDeEventos);

				
				CanvasGame.instance.gerenciaInimigo.ListaInimigo.clear();
				CanvasGame.instance.gerenciaPlataformaMovimentoHorizontal.listaPlataformaHorizontal.clear();
				CanvasGame.instance.gerenciaPlataformaMovimentoVertical.listaPlataformaVertical.clear();
				CanvasGame.instance.boxPush.listaBoxPush.clear();
				// Carrega mapa fase 1
				
				CanvasGame.instance.mapaAtual = new TileMap(CanvasGame.instance.tileset, (GamePanel.PWIDTH >> 4)
						+ (((GamePanel.PWIDTH & 0x000f) > 0) ? 1 : 0),
						(GamePanel.PHEIGHT >> 4)
						+ (((GamePanel.PHEIGHT % 16) > 0) ? 1 : 0));
				
				CanvasGame.instance.mapaAtual.AbreMapa("./../MapaD.map"); 
				
				CanvasGame.instance.MouseX = CanvasGame.instance.MouseY = 0;
				CanvasGame.instance.mapaGenerico = CanvasGame.instance.mapaAtual;
				
				// / ADD tudo por CSV ...... INIMIGOS, PLATAFORMAS, ARMADILHAS fase 2  >>>>> CADA FASE TERA SEU PROPRIO CSV
				CanvasGame.instance.eventosFase1.carregaEventos(this.getClass().getResourceAsStream("./../fase4.csv"));

				
				CanvasGame.instance.eventosFase1.CarregaTodosItensJogo();

				//.............................................
				
			}
			
			}
		}
		
		}
		
		
		
		
		
		
		
		
		
		
		
		
		
		
	}
	
}
